package puzzle.common.solver;

import puzzle.common.data.AbstractBoard;

public class BoardSnapshot<B extends AbstractBoard<B>, P extends AbstractTopology, A extends AbstractAssumption> {
	private B m_board;
	private P m_topology;
	private SolutionState m_solutionState;
	private A m_assumption;

	public BoardSnapshot(B b, P topology, SolutionState ss, A assumption) {
		m_board = b;
		m_topology = topology;
		m_solutionState = ss;
		m_assumption = assumption;
	}

	public B getBoard() {
		return m_board;
	}

	public P getTopology() {
		return m_topology;
	}

	public SolutionState getSolutionState() {
		return m_solutionState;
	}

	public A getAssumption() {
		return m_assumption;
	}

}
